#ifndef GET_SRVS_FROM_JSON_H_
#define GET_SRVS_FROM_JSON_H_

#include <jsoncpp/json/json.h>

#include <agv_srvs/srv/dyn_param.hpp>
#include <agv_srvs/srv/static_param.hpp>
#include <agv_srvs/srv/change_nav_type.hpp>
#include <agv_srvs/srv/local_order.hpp>
#include <agv_srvs/srv/instant_actions.hpp>
#include <agv_srvs/srv/lidar_calib.hpp>
#include <agv_srvs/srv/qr_calib.hpp>
#include <agv_srvs/srv/set_laser_calib.hpp>
#include <agv_srvs/srv/odom_calib.hpp>
#include <agv_srvs/srv/get_map_list.hpp>
// #include <reflector_slam_ros/srv/reflector__nav_task.hpp>
// #include <reflector_slam_ros/srv/save_reflector_map.hpp>
#include <agv_srvs/srv/relocate.hpp>
#include <agv_srvs/srv/set_operation_mode.hpp> //operation_mode
#include <agv_srvs/srv/file_transform.hpp>
#include <agv_srvs/srv/output_interface.hpp>
#include <agv_srvs/srv/log_transform.hpp>
#include <std_srvs/srv/set_bool.hpp>
#include <agv_srvs/srv/edit_map.hpp>
#include <agv_srvs/srv/set_loaction_mode.hpp>
#include <agv_srvs/srv/save_map.hpp>
#include <agv_srvs/srv/auto_calib.hpp>
#include <agv_srvs/srv/laser_filter.hpp>
#include <agv_srvs/srv/get_map_point.hpp>
#include <slam_ros_msgs/srv/change_map.hpp>
#include <slam_ros_msgs/srv/get_landmark_lists.hpp>
#include <agv_srvs/srv/version.hpp>
#include <agv_srvs/srv/firmware_update.hpp>
#include <agv_srvs/srv/ftp_request.hpp>
#include <slam_ros_msgs/srv/syncmap.hpp>
#include <agv_srvs/srv/avoid_obsta_update.hpp>
#include <agv_srvs/srv/avoid_obsta_switch.hpp>

std::shared_ptr<agv_srvs::srv::DynParam::Request> get_agv_srvs_DynParam(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::StaticParam::Request> get_agv_srvs_StaticParam(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::ChangeNavType::Request> get_agv_srvs_ChangeNavType(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::LocalOrder::Request> get_agv_srvs_V_localOrder(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::InstantActions::Request> get_agv_srvs_V_instantActions(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::LidarCalib::Request> get_agv_srvs_LidarCalib(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::QRCalib::Request> get_agv_srvs_QRCalib(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::SetLaserCalib::Request> get_agv_srvs_SetLaserCalib(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::OdomCalib::Request> get_agv_srvs_OdomCalib(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::GetMapList::Request> get_agv_srvs_GetMapList(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::Relocate::Request> get_agv_srvs_Relocate(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::SetOperationMode::Request> get_agv_srvs_SetOperationMode(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::OutputInterface::Request> get_agv_srvs_OutputInterface(const Json::Value &json_args);
std::shared_ptr<std_srvs::srv::SetBool::Request> get_std_srvs_SetBool(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::EditMap::Request> get_agv_srvs_EditMap(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::SetLoactionMode::Request> get_agv_srvs_SetLoactionMode(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::SaveMap::Request> get_agv_srvs_SaveMap(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::AutoCalib::Request> get_agv_srvs_AutoCalib(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::LaserFilter::Request> get_agv_srvs_LaserFilter(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::GetMapPoint::Request> get_agv_srvs_GetMapPoint(const Json::Value &json_args);
std::shared_ptr<slam_ros_msgs::srv::ChangeMap::Request> get_slam_ros_msgs_ChangeMap(const Json::Value &json_args);
std::shared_ptr<slam_ros_msgs::srv::GetLandmarkLists::Request> get_slam_ros_msgs_GetLandmarkLists(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::Version::Request> get_agv_srvs_Version(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::FirmwareUpdate::Request> get_agv_srvs_FirmwareUpdate(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::FtpRequest::Request> get_agv_srvs_FtpRequest(const Json::Value &json_args);
std::shared_ptr<slam_ros_msgs::srv::Syncmap::Request> get_slam_ros_msgs_Syncmap(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::AvoidObstaUpdate::Request> get_agv_srvs_AvoidObstaUpdate(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::AvoidObstaSwitch::Request> get_agv_srvs_AvoidObstaSwitch(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::FileTransform::Request> get_agv_ftp_log_file_transform(const Json::Value &json_args);
std::shared_ptr<agv_srvs::srv::LogTransform::Request> get_agv_srvs_log_transform(const Json::Value &json_args);

#endif